Method of data block aggregation

ABSTRACT

Techniques for providing blocks of data to a remote computer system for insertion into a computer-generated document residing on the remote computer system. The techniques include identifying, in the central network-accessible computer system, a plurality of blocks of data, a source for obtaining current data for each of the blocks of data, and an identifier that uniquely identifies each of the blocks of data In response to a request from the remote computer system received by the central network-accessible computer system for current data for a specified one of the plurality of blocks of data, the central network-accessible computer system transmits the requested current data for the block of data from the central network-accessible computer system to the remote computer system for insertion into a computer-generated document residing on the remote computer system.

This application claims priority from U.S. provisional patentapplication No. 60/294,436 filed on May 30, 2001.

TECHNICAL FIELD

This invention relates to information management systems, and moreparticularly to a method for aggregating data blocks and making the datablocks available for retrieval by a remote computer system.

BACKGROUND

Electronic information management systems often employ an internaldatabase of information that may be retrieved and input into variouscomputer applications by a user. A user will often retrieve only smallportions of information from the internal database and transfer thedesired portion of information into the user's computer application.However, when the user requires only small pieces of information from anexternal source, such as an internet website, an independent researchreport, or government statistical data, then the user must independentlyresearch and retrieve the desired information from each external source,and input the pieces of information into the user's computerapplication. The research and retrieval of the desired information maybe time-consuming, costly, or redundant depending on the nature of theinformation.

In a typical example, research reports from professional organizationsmay be sold to the public, yet a user may desire only a small portion ofinformation, such as only the conclusion or figures. The user maypurchase the entire research report in order to obtain only the smallportion of information that is desired, which may be an expensiveoption. A better solution for the user may be to obtain a tool thatallows the user to purchase and automatically retrieve only the smallportions of information that is desired from the external sourcesinstead of paying for the entire research report.

In another example, the information that is researched and retrievedfrom external sources by the user may be continually changinginformation, such as weather reports, currency exchange rates, pricinginformation, or news headlines. To ensure that the data input into thecomputer application is updated correctly, the user must continuallyresearch and retrieve the desired information from the same externaldata sources on a repetitive basis and input the updated data into thecomputer application. Also, if the user is creating a data-intensivedocument that requires small portions of information from many differentexternal sources, the research and retrieval may be very laborious andtime-consuming. It would be advantageous to the user to obtain a toolthat is able to continually update pieces of data that are input intothe computer application and simplify the research and retrieval processfor small pieces of information from many different external sources. Aneed exists for a tool that may be used to import readily available,useful pieces of information into computer applications, which may beautomatically updated.

SUMMARY

In general, the invention is directed toward improvements in the methodof information management that enables simplified research and retrievalof data for individual users. The current invention is concentrated inmanaging useful pieces of information from external data sources insteadof whole documents, and making the pieces of information easilyaccessible to individual users.

A method for providing blocks of data to a remote computer system forinsertion into a computer-generated document residing on the remotecomputer system includes identifying, in a central network-accessiblecomputer system, a plurality of blocks of data, a source for obtainingcurrent data for each of the blocks of data, and an identifier thatuniquely identifies each of the blocks of data. The method alsocomprises, in response to a request from the remote computer systemreceived by the central network-accessible computer system for currentdata for a specified one of the plurality of blocks of data,transmitting the requested current data for the block of data from thecentral network-accessible computer system to the remote computer systemfor insertion into a computer-generated document residing on the remotecomputer system.

The pieces of information from the external data sources are retrievedby the central network-accessible computer system, which is referred toas an aggregator. Some or all of the information syndicated fromexternal data sources may be made available by the external sourcesunder agreement with an operator of the aggregator. The individual usersmay receive access to the data blocks of the aggregator by subscribingto the services of the aggregator. The invention may include one or moreof the following advantages. First, the invention provides users a datamarket that allows users to buy valuable and useful pieces ofinformation to their applications. Also, the current invention savestime and expenses by providing hard to find pieces of information, datathat is updated frequently, and pieces of information from manydifferent external sources direct to the users computer systems. Anotheradvantage is that the invention provides only the pieces of informationthat are relevant to the individual user, not entire documents, and therelevant pieces of information are transmitted to the user in a usableelectronic format. The details of one or more embodiments of theinvention are set forth in the accompanying drawings and the descriptionbelow. Other features, objects, and advantages of the invention will beapparent from the description and drawings.

DESCRIPTION OF DRAWINGS

FIG. 1 is a diagram of an information management system using a datablock aggregator in accordance with the invention.

FIG. 2 is an example of the fields that may be included in the databaseof the aggregator.

FIGS. 3–7 show one embodiment of how a user may select a data block fromthe aggregator in accordance with the invention.

FIG. 8 is a diagram of an example of the information management systemusing a data block aggregator of FIG. 1.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

An information management system 10 in accordance with the invention,shown in FIG. 1, includes an aggregator 20 that is network connected tovarious external data sources 80, 85 and 90. The aggregator 20 is alsonetwork accessible by a user's remote computer system 50. The aggregator20 shown in this embodiment includes a central processing unit 25 andcomputer memory 30 with a database 40 stored in the memory 30. Theaggregator 20 serves as a centralized source for users to access variouspieces of information, referred to as data blocks. Some examples of datablocks may be the current temperature in a certain city, a current stockprice for a specific company, and market statistics derived from anindustry report.

Also stored in memory is a computer program 35 that performs two primaryfunctions. First, the computer program 35 controls the retrieval ofinformation stored at the various external sources 80, 85 and 90, andthe aggregation of that information into the database 40. Second, thecomputer program 35 controls, upon receipt of a command for a specifieddata block stored in the database 40 from the user's computer system 50,the delivery of the specified data block to the user's computer system50. The network connections to the external sources 80, 85, and 90 maybe secured connections or unsecured connections depending on theinformation that is provided. Some or all of the information syndicatedfrom the external sources 80, 85, and 90 may be made available by theexternal sources under agreement with an operator of the aggregator 20.Also, the individual users may receive access to the data blocks of theaggregator 20 by subscribing to the services of the aggregator 20.

The database 40 of the aggregator 20 may have a plurality of fieldsdedicated to retrieving the desired data blocks from external sources80, 85, and 90 and then transmitting the data blocks to the user. Asshown in FIG. 2, the database 40 may include the following fields: datablock identifier 42, command parameters 43, stored data block 44,refresh rate 45, previous update 46, and mapping 47. Referring to bothFIGS. 1 and 2, when a command is transmitted to the aggregator 20 for aparticular data block, the command is associated with a uniqueidentifier for the data block, and the identifier for each data block islocated in the data block identifier field 42. The unique identifier maybe a label for the data block having numbers and letters or theidentifier may be a label having an actual text description of the datablock. The command to the aggregator 20 may also include certainparameters, which correspond to the command parameter field 43. Forexample, the user's computer system 50 may transmit commands for currentweather information for the cities of San Francisco and Paris. Althoughthe data blocks requested are for the current weather information, theparameters for each command may be the city names. The refresh ratefield 45 describes how often a particular data block should be updated,and the previous update field 46 describes the last time that particulardata block was updated. The stored data block field 44 contains theactual data block. The mapping field 47 describes the mapping sequencethat the aggregator program 35 may use to update the particular datablock.

When a command is transmitted from a user's computer system 50 to theaggregator 20 requesting a particular data block, the aggregator program35 associates the command with a unique identifier from the data blockidentifier field 42, and any parameters that may be included with thecommand are corresponded to the command parameter field 43. The datablock identifier field 42 and the command parameters field 43 togetherserve to locate the data block in the stored data block field 44 thatwas requested by the command. The refresh rate field 45 and the previousupdate field 46 are compared to determine if the actual data block thatis saved in the stored data block field 44 needs to be updated from theexternal source 80, 85, or 90. For example, if a particular data blocksaved in the stored data block field 44 has a corresponding refresh ratefield 45 set to 10 minutes, and the previous update field 46 describesthat the last update occurred 2 minutes before the current request, thenthe data block saved in the stored data block field 44 is valid and maybe transmitted back to the user's computer system 50. Then data blockmay be displayed in the user's computer application 55 as a basis forother operations, such as calculations in a spreadsheet application.However, if the previous update field 46 describes that the last updateoccurred 15 minutes before the current request, then the data blocksaved in the stored data block field 44 must be updated before beingtransmitted to the user's computer system 50.

The aggregator program 35 uses the mapping field 47 of the particulardata block saved in the stored data block field 44 to update the datablock. The mapping field 47 includes instructions or a mapping sequencefor the aggregator program 35 so that the updated data block may beretrieved from the external source 80, 85, or 90. For example, themapping sequence may include opening a specific internet web page andusing a conventional “web scraping” software to extract only a piece ofthe information shown on the page. Further yet, the mapping sequence mayinclude a direct database query, which instructs the aggregator program35 to directly access a database of an external data source 80, 85, or90 and query a particular piece of information. The process used by theaggregator 20 to automatically retrieve information from an externaldata source 80, 85, or 90 typically will depend upon an agreementbetween the operator of the aggregator 20 and the external data source.The aggregator program 35 separates the information of the external datasource 80, 85, or 90 into pieces of information, and the desired pieceof information is retrieved and saved to the stored data block field 44as an updated data block to replace the old data block. Then the newdata block is transmitted to the user's computer system 50.

The external data sources 80, 85, and 90 may include electronicdatabases, online research reports and statistical data, internet webpages, sensory information, real-time information streams, or otherforms of electronic information. The information from the external datasources 80, 85, and 90 may be in a format that includes more informationthan the user may desire, so the information from the external datasources 80, 85, and 90 is separated into smaller pieces of information,which may be transmitted to the user's computer system 50 as datablocks. For example, a user may desire only a piece of information froma research report of an external data source 80, 85, or 90, so theaggregator 20 may separate portions of the report, such as theconclusion section or a final determination of an important value, intoa smaller piece of information that would constitute the data block.Then the user with a subscription to access the data blocks of theaggregator 20 may retrieve only the desired pieces of information fromthe research report instead of paying a fee for the entire document.

As mentioned previously, the user may retrieve desired information fromthe external data sources by entering a command in the user's computerapplication 55. A software tool that enables the user to do this isprovided by a Microsoft® Office XP feature known as Smart Tags, which iscurrently undergoing Beta testing. Smart Tags enables associationsbetween Office XP documents and other resources, such as data blocks.The Smart Tags feature allows an individual computer to be programmed torecognize certain text so that a menu listing associated resources maybe opened by the user. This feature may be used to recognize certaintext, so a menu of associated data blocks may be listed for the user toselect from. The aggregator maintains a list of available data blocks tobe transmitted to the user, and a default menu option allows the user toadd more listings of data block descriptions to the menu. For example,the user may update the menu listing of the available data blocks byselecting the default option in the menu labeled “browse available datablocks.” Selecting this option brings the user to a website that liststhe available data blocks. Additional data blocks may be added to theuser's menu listing by selecting the additional data blocks from thewebsite. Then the new data blocks are added to the menu listing. Afterthe user selects the desired data block, the command is transmitted tothe aggregator 20, and the aggregator transmits the data block to theuser's computer application 55 to be displayed for the user.

FIGS. 3–7 show an example of how a user selects a data block from theaggregator 20. Referring to FIG. 3, the user wishes to create aspreadsheet showing city names and local weather. The first city nameentered into the spreadsheet computer application in this example is“San Francisco.” FIG. 4 shows the user employing the Smart Tags featureto enter a command to the aggregator (not shown in FIG. 4). The SmartTags feature recognizes the text “San Francisco” and a menu listing isshown to the user with descriptions of associated data blocks that maybe retrieved. Referring to FIG. 5, the user highlights one of thedescriptions for a data block that retrieves the current weatherinformation. When the user selects the “current weather” menu option, acommand is transmitted to the aggregator using a network connection fromthe user's computer system. The aggregator corresponds the command witha unique identifier for a data block of the current weather with thecity of San Francisco entered as a parameter. The aggregator thentransmits the data block to the user's computer system, and the weatherinformation is displayed for the user in the spreadsheet application, asshown in FIG. 6. Referring to FIG. 7, the spreadsheet of city names andlocal weather expanded to include other cities and current weatherconditions that were retrieved using data blocks from the aggregator.The weather information for each city shown in FIG. 7 may later beupdated at various times, for example, when the spreadsheet applicationis restarted. Then the weather information will be automatically updatedby a request to the aggregator 20 that will retrieve the most recentdata. The Smart Tags feature is only one example of how a command may beentered to the aggregator, and should not be considered a limitation onthe invention.

Data blocks that are input into a computer application may refer topreviously input data blocks as parameters. This process is referred toas a chain of data blocks. For example, if a company name is typed intoa first cell of a spreadsheet application, then a command may betransmitted to the aggregator to retrieve the stock ticker symbol forthat company and input the ticker symbol into a second cell. Next,another command may be transmitted to the aggregator to retrieve thecurrent stock price for that particular ticker symbol and input thestock price into a third cell. Since the data block for the stock pricerefers to the data block for the ticker symbol, the data blocks are achain of data blocks. Thus, if the company name in the first cell werechanged to a different company name, then the data block in the secondcell would be updated by the aggregator to display the ticker symbol forthe different company name. Accordingly, the data block in the thirdcell would be updated to display the current stock price for the updatedticker symbol of the second cell.

A diagram of an example of the information management system using adata block aggregator 20 of FIG. 1 is shown in FIG. 8. In this exampleof the invention, the user wishes to create an electronic spreadsheet 48of customer locations, airline pricing for flights to the customerlocations from the user's home city, local weather conditions at thecustomer locations, and the currency exchange rate at the customerlocations. As is conventional, the user may use the internal databasesoftware to export the customer locations data from the internaldatabase 60 to a spreadsheet format. The user's computer system 50 mayretrieve data from the internal database 60, which may be used incombination with the aggregator 20 for simplifying access to data, butthe internal database 60 is not a requirement of the invention. Next,the user must input the price for flights to the customer locations inthe spreadsheet application 55. Instead of using an external source 80,such as an internet website, to research and retrieve the airlinepricing for the individual locations, the user simply enters a commandinto the spreadsheet application 55. The user may issue the command invarious ways, such as typing the command into a cell in the spreadsheetor employing the previously described Smart Tags feature. The commandmay include parameters, such as travel dates and name of airline, whilereferring to the customer location previously input into the spreadsheetas the arrival city. The entered command is transmitted to theaggregator 20. The desired airline pricing information is automaticallyretrieved and separated into data blocks by the aggregator 20, and theaggregator 20 responds by transmitting at least one data block with theappropriate airline pricing information to the user's computer system50. The airline pricing information is displayed in the spreadsheetapplication 55, and pricing information for an additional airline may bedisplayed by entering an additional command.

The user may have the local weather conditions displayed in thespreadsheet application 48 by entering a command similar to the processshown in FIGS. 3–7. Again, the command for the local weather conditionsmay refer to the customer location that was previously input into thecells of the spreadsheet. The need to research and retrieve the localweather conditions for each customer location by the user is eliminatedsince the user simply enters a command for each customer location.Similarly, the currency exchange rate for each customer location may beinput into the spreadsheet by entering a command in the electronicspreadsheet application 55 requesting such information from theaggregator 20. The airline pricing, local weather conditions, andcurrency exchange rates may change on a daily basis, so the informationdisplayed in the spreadsheet may be automatically updated since theinformation is linked to data blocks that are updated by the aggregator20, as previously described. The spreadsheet may be updated by settingsin the computer application 55 to automatically request updated datablocks from the aggregator 20, or the application 55 may have a functionthat lets the user manually request to update all data blocks from theaggregator 20.

The previous example is only one example of how the method of data blockaggregation may be used to enable the quick discovery and simplifiedretrieval of data in a usable format, and the example should not beconsidered limiting in any way. There are many instances when a user maybenefit from the use of data block aggregation, such as when the usermay desire data that is costly or difficult to find. In anotherinstance, the user may have recurring needs for a single piece ofinformation in a computer application, or the required data may bedynamic, which continually changes with time. The example shown in FIG.8 describes how the method of data block aggregation may be used foraccess of airline pricing data, local weather data, and currencyexchanges rate data, but the current invention may be applied to datafrom other industries. For example, the method of data block aggregationmay be applied to business industry data, such as data on companies,products, pricing, production, and market research. Also, the automotiveindustry may use the current invention to enable quick discovery andsimplified retrieval of information, such as data on wholesale andretail pricing, data on automobile efficiency and safety, or data onvehicle sales. Similarly, the current invention may be applied toinformation from the real estate industry, the sports and gamingindustry, the energy and fuel industry, and the data monitoringindustry.

A number of embodiments of the invention have been described.Nevertheless, it will be understood that various modifications may bemade without departing from the spirit and scope of the invention. Forexample, the data blocks transmitted from the aggregator to the user mayinclude numerical data, text data, or a combination of both. Also, theaggregator may transmit data blocks to multiple users at the same time.A further embodiment of the invention may include users that areconnected to the aggregator using a wireless network connection. Furtheryet, computer applications that use the data block aggregation to inputdata may be applications other than an electronic spreadsheetapplication, such as a word processing application, a computerprogramming application, a presentation application, or a publishingapplication. Accordingly, other embodiments are within the scope of thepreviously described invention.

1. A method for providing blocks of data to a remote computer system for insertion into a computer-generated document residing on the remote computer system, the method comprising: identifying, in a central network-accessible computer system, a plurality of blocks of data, a source for obtaining current data for each of the blocks of data, and an identifier that uniquely identifies each of the blocks of data; and in response to a request initiated from within a computer-generated document residing on the remote computer and received by the central network-accessible computer system for current data for a specified one of the plurality of blocks of data, transmitting the requested current data for the block of data from the central network-accessible computer system to the remote computer system for insertion into a user selectable location in the computer-generated document residing on the remote computer system.
 2. The method of claim 1, wherein the central network-accessible computer system periodically retrieves or receives, from an external data source, the current data for each of the blocks of data.
 3. The method of claim 2, wherein: the current data for one of the plurality of data blocks are retrieved or received in response to the receipt of a request at the central network-accessible computer system from the remote computer system for the current data for the one of the plurality of data blocks; and after the current data for the one of the plurality of data blocks are thus retrieved or received, the current data for the one of the plurality of data blocks are transmitted from the central network-accessible computer to the remote computer system.
 4. The method of claim 2, wherein the current data for one of the plurality of data blocks are retrieved upon the expiration of a refresh timer associated with the one of the plurality of data blocks, and the thus retrieved current data are stored in memory at the central network-accessible computer.
 5. A network-accessible central computer system for providing blocks of data to a remote computer system for insertion into a computer-generated document residing on the remote computer system, the network-accessible central computer system comprising: a database comprising a plurality of entries relating to a plurality of blocks of data, each database entry comprising an identification of the block of data, a source for obtaining current data for the block of data, and an identifier that uniquely identifies the block of data; and software code that when executed causes, in response to a request initiated from within a computer-generated document residing on the remote computer and received by the central network-accessible computer system for the current data for one of the plurality of blocks of data, a transmission of the current data for the requested block of data to the remote computer system for insertion into a user selectable location in the computer-generated document residing on the remote computer system.
 6. The network-accessible computer system of claim 5, further comprises software code that when executed causes the retrieval or the receipt, from an external data source, of the current data for each of the blocks of data.
 7. The network-accessible computer system of claim 6, wherein: the current data for one of the plurality of data blocks are retrieved or received in response to the receipt of a request at the central network-accessible computer system from the remote computer system for the current data for the one of the plurality of data blocks; and after the current data for the one of the plurality of data blocks are thus retrieved or received, the current data for the one of the plurality of data blocks are transmitted from the central network-accessible computer to the remote computer system.
 8. The network-accessible computer system of claim 6, wherein the current data for one of the plurality of data blocks are retrieved or received upon the expiration of a refresh timer associated with the one of the plurality of data blocks, and the thus retrieved or the received current data are stored in memory at the central network-accessible computer.
 9. A computer program product tangibly embodied in a computer readable storage medium, the computer program product including instructions that when executed cause a processor to perform operations comprising: identify, in a central network-accessible computer system, a plurality of blocks of data, a source for obtaining current data for each of the blocks of data, and an identifier that uniquely identifies each of the blocks of data; and in response to a request initiated from within a computer-generated document residing on the remote computer and received by the central network-accessible computer system for current data for a specified one of the plurality of blocks of data, transmit the requested current data for the block of data from the central network-accessible computer system to the remote computer system for insertion into a user selectable location in the computer-generated document residing on the remote computer system.
 10. The computer program product of claim 9, further comprising instructions that when executed cause the processor to perform operations including periodically retrieve or receive, from an external data source, the current data for each of the blocks of data.
 11. The computer program product of claim 10, wherein: the current data for one of the plurality of data blocks are retrieved or received in response to the receipt of a request at the central network-accessible computer system from the remote computer system for the current data for the one of the plurality of data blocks; and after the current data for the one of the plurality of data blocks are thus retrieved or received, the current data for the one of the plurality of data blocks are transmitted from the central network-accessible computer to the remote computer system.
 12. The computer program product of claim 10, wherein the current data for one of the plurality of data blocks are retrieved upon the expiration of a refresh timer associated with the one of the plurality of data blocks, and the thus retrieved current data are stored in memory at the central network-accessible computer.
 13. The computer program product of claim 9, wherein the computer generated document resides on the remote computer system such that the document is editable by a user of the remote computer system.
 14. The method of claim 1, wherein the computer generated document resides on the remote computer system such that the document is editable by a user of the remote computer system.
 15. The network-accessible computer system of claim 5, wherein the computer generated document resides on the remote computer system such that the document is editable by a user of the remote computer system.
 16. The method of claim 1, wherein the computer-generated document is displayed on the remote computer system and is viewable by a user of the remote computer system.
 17. The method of claim 16, wherein the computer-generated document is a user-editable document displayed on the remote computer system, the user-editable document being selected from a group consisting of: a spreadsheet document, a word processing document, a presentation document, and a publishing document.
 18. The method of claim 17, wherein the request is initiated by a user of the remote computer system by selection of a menu option that is displayed on the remote computer system.
 19. The method of claim 18, wherein the displayed menu option is indicative of one of the blocks of data available in the central network-accessible computer system.
 20. The method of claim 16, wherein the block of data transmitted from the central network-accessible computer system and inserted into the computer-generated document is displayed on the remote computer system.
 21. The method of claim 20, wherein the block of data is inserted into the computer-generated document at a location selected by the user of the remote computer system.
 22. The network-accessible central computer system of claim 5, wherein the computer-generated document is displayed on the remote computer system and is viewable by a user of the remote computer system.
 23. The network-accessible central computer system of claim 22, wherein the computer-generated document is a user-editable document displayed on the remote computer system, the user-editable document being selected from a group consisting of: a spreadsheet document, a word processing document, a presentation document, and a publishing document.
 24. The network-accessible central computer system of claim 23, wherein the request is initiated by a user of the remote computer system by selection of a menu option that is displayed on the remote computer system.
 25. The network-accessible central computer system of claim 24, wherein the displayed menu option is indicative of one of the blocks of data available in the database.
 26. The network-accessible central computer system of claim 22, wherein the block of data transmitted from the central network-accessible computer system and inserted into the computer-generated document is displayed on the remote computer system.
 27. The network-accessible central computer system of claim 26, wherein the block of data is inserted into the computer-generated document at a location selected by the user of the remote computer system.
 28. The computer program product of claim 9, wherein the computer-generated document is displayed on the remote computer system and is viewable by a user of the remote computer system.
 29. The computer program product of claim 28, wherein the computer-generated document is a user-editable document displayed on the remote computer system, the user-editable document being selected from a group consisting of: a spreadsheet document, a word processing document, a presentation document, and a publishing document.
 30. The computer program product of claim 29, wherein the request is initiated by a user of the remote computer system by selection of a menu option that is displayed on the remote computer system.
 31. The computer program product of claim 30, wherein the displayed menu option is indicative of one of the blocks of data available in the central network-accessible computer system.
 32. The computer program product of claim 28, wherein the block of data transmitted from the central network-accessible computer system and inserted into the computer-generated document is displayed on the remote computer system.
 33. The computer program product of claim 32, wherein the block of data is inserted into the computer-generated document at a location selected by the user of the remote computer system.
 34. A method for inserting a data block from a server computer system into a computer-generated document residing on a client computer system, the method comprising: initiating a request for at least one data block in a network-accessible server computer system, the request being initiated from within a computer-generated document residing on a client computer system, wherein the computer generated document is displayed on the client computer system and is editable by a user of the client computer system; transmitting the request to the network-accessible server computer system; receiving the requested data block from the server computer system; and inserting the data block at a location in the computer-generated document selected by the user of the client computer system such that the data block is displayed on the client computer system.
 35. The method of claim 34, wherein the computer-generated document is selected from a group consisting of: a spreadsheet document, a word processing document, a presentation document, and a publishing document.
 36. The method of claim 34, further comprising selecting a menu option from a menu displayed on the client computer system so as to initiate the request for the data block.
 37. The method of claim 36, wherein the displayed menu option is indicative of one of a plurality of data blocks available in the network-accessible server computer system.
 38. The method of claim 36, wherein the menu is displayed on the client computer system at a location selected by a user of the client computer system so that the data block is inserted into the computer-generated document proximal to the display location of the menu.
 39. The method of claim 34, wherein the network-accessible server system comprises a database comprising a plurality of entries relating to a plurality of data blocks. 